object ScalaVarDemo02 {

  def main(args: Array[String]): Unit = {
    //类型推导，这个时候age是Int类型
    var age = 18
    /*
    有两种方式我们可以age是Int类型的：
    1.idea显示
    2.println（age。isInstanceOf[Int]）结果为true
     */
    //类型确定后，就不能修改，说明Scala是强数据类型语言
    //age = 2.1 编译器报错

    //age可以修改，因为gae是var声明的
    age = 19
    val sal = 200
    //sal是val声明的，所以不可以变
    //sal = 100000 编译器报错
    /**
     * scala设计者为什么设计 var 和 val
     * 在实际编译中，我们更多的是需求是获取、创建一个对象后，
     * 读取该对象的属性，或者是修改对象属性值，但是我们很少去改变这个对象本身
     *var dog = new dog（）
     * dog.age = 99、
     * dog = new Dog（）
     * dog。99 = 99
     * 2。因为val 没有线程安全问题，因此效率高，scala的设计者推荐我们val
     * 3。如果对象需要改变，则使用var
     **/
    val dog = new Dog()
    //0
    println(dog.age)

    println(dog.name)
  }

}
